While workers can easily share gigabytes of project data on a local-area network (LAN) using standard file-server technology, such is not the case with workers in remote offices connected over wide-area networks (WANs). With respect to file sharing over WANs, standard file server protocols provide unacceptably slow response times when opening and writing files.
All major file-sharing protocols were designed for LAN environments where clients and servers are located in the same building or campus, including: NFS (Network File System, used for Unix/Linux environments), CIFS (Common Internet File System used for Windows environments), and IPX/SPX (Internetwork Packet Exchange/Sequenced Packet Exchange, used for Novell environments). The assumption that the client and the server would be in close proximity led to a number of design decisions that do not scale across WANs. For example, these file sharing protocols tend to be rather “chatty”, insofar as they send many remote procedure calls (RPCs) across the network to perform operations.
For certain operations on a file system using the NFS protocol (such as an rsync of a source code tree), almost 80% of the RPCs sent across the network can be access RPCs, while the actual read and write RPCs typically comprise only 8-10% of the RPCs. Thus 80% of the work done by the protocol is simply spent trying to determine if the NFS client has the proper permissions to access a particular file on the NFS server, rather than actually moving data.
In a LAN environment, these RPCs do not degrade performance significantly given the usual abundance of bandwidth, but they do in WANs, because of their high latency. Furthermore, because data movement RPCs make up such a small percentage of the communications, increasing network bandwidth will not help to alleviate the performance problem in WANs.
Therefore, systems have been developed (called wide area file services (WAFS)) which combine distributed file systems with caching technology to allow real-time, read-write access to shared file storage from any location, including locations on WANs, while also providing interoperability with standard file sharing protocols such as NFS and CIFS. See, for example, U.S. Pat. No. 7,103,617.
WAFS systems typically consist of edge file gateway (EFG) appliances (or servers), which are placed at remote offices, and one or more central server (CS) appliances (or servers) that allow storage resources to be accessed by the EFG appliances. Each EFG appliance appears as a local fileserver to remote office users. Together, the EFG appliances and CS appliance implement a distributed file system and communicate using a WAN-optimized protocol. This protocol is translated back and forth to NFS and CIFS at either end, to communicate with the remote user applications and the centralized storage.
The WAN-optimized protocol typically includes file-aware differencing technology, data compression, streaming, and other technologies designed to enhance performance and efficiency in moving data across the WAN. File-aware differencing technology detects which parts of a file have changed and only moves those parts across the WAN. Furthermore, if pieces of a file have been rearranged, only offset information will be sent, rather than the data itself.
In WAFS systems, performance during “read” operations is usually governed by the ability of the EFG appliance to cache files at the remote office and the ability to serve cached data to users while minimizing the overhead of expensive kernel-user communication and context switches, in effect enabling the cache to act just like a high-performance file server. Typically, the remote cache attempts to mirror the data center exactly, so that “read” requests will be satisfied from the local cache with only a few WAN round trips required to check credentials and availability of file updates.
In WAFS systems, “write” operations should maintain data coherency, i.e., file updates (“writes”) from any one remote office should not to conflict with updates from another remote office. To achieve data coherency, some WAFS systems use file leases. Leases define particular access privileges to a file from a remote office. If a user at a remote office wants to write to a cached file, the EFG appliance at that office obtains a “write lease”, i.e., a right to modify the document before it can do so. The WAFS system ensures that at any time there will be only one remote office that has the write lease on a particular file. Also, when a user at another office tries to open the file, the EFG appliance that has the write lease flushes its data first and optionally can give up the write lease if there are no active writers to the file. See generally, Enabling File Sharing over the WAN, Comms Design (May 25, 2004), by Vinodh Dorairajan.
One of the applications that might make use of a WAFS system is a file manager, such as Windows Explorer. A file manager is a computer program that provides a user interface to work with file systems. Often, a file manager is part of an operating system. For desktop computers at the present time, the most common type of file manager is a navigational, as opposed to spatial, file manager.
A navigational file manager is a file manager that uses a “navigational” metaphor to represent file system locations. The user can change the location being viewed, by opening folders, pressing a back button, typing a location, etc. Typically, icons represent files, applications, and directories. The interface in a navigational file manager may strongly resemble a web browser, complete with back, forward, and maybe even reload buttons, and an address bar where file locations can be typed and the current location is shown. Moving from one location to another does not require the opening of a new window, which is the case with spatial file managers.
The most common operations that file managers perform on files are create, open, edit, view, print, play, rename, move, copy, delete, attributes, properties, search/find, and permissions. Often a file manager displays files, using a hierarchy, with some information such as author and modification date that the file manager reads from the beginning of the file, e.g., the file header. Some media file formats do not include traditional file headers, e.g., MP3 audio files consisting of frames, though file headers are common among file formats used by word-processing programs. In this regard, see the Microsoft Office Word 2003 Rich Text Format (RTF) Specification (Version 1.8, April 2004), which describes a file header in a human-readable file format.
Other file formats provide for the storing of preview information in the form of a thumbnail, i.e., a version of an image that has been reduced in size. For example, the file format for Windows Media Photo files includes a thumbnail section, as does the file format for AutoCAD DXF files. Many file managers read such sections and display their preview information, e.g., thumbnails, when displaying the files in a hierarchy.